package com.study.spark.scala.chapter07

object Scala13_Collection_Method_6{
  def main(args: Array[String]): Unit = {
    // TODO 集合 - 方法 补充
    val user1 = new User()
    user1.age = 20
    user1.salary = 2000

    val user2 = new User()
    user2.age = 30
    user2.salary = 2000

    val user3 = new User()
    user3.age = 20
    user3.salary = 1000

    val users =List(
      user1,user2,user3
    )

    // TODO 以年龄升序，如果相同以薪水降序排列

    // 排序一  元组，可以默认排序，先比较第一个，如果相同比较第二个
    println(users.sortBy(
      user => {
        (user.age, user.salary)
      }
    )(Ordering.Tuple2[Int, Int](Ordering.Int, Ordering.Int.reverse)))
    //List(User[20,2000], User[20,1000], User[30,2000])

    // 排序二  自定义排序
    println(users.sortWith(
      (user1, user2) => {
        if (user1.age < user2.age) {
          true
        } else if (user1.age == user2.age) {
          user1.salary > user2.salary
        } else {
          false
        }
      }
    ))
    //List(User[20,2000], User[20,1000], User[30,2000])


  }
  class User{
    var age : Int= _
    var salary :Int = _

    override def toString: String = {
      return s"User[$age,$salary]"
    }
  }
}
